You have to make count volatile.
volatile unsigned int count = 0;
I also have the habit of making stuff that should never go negative (like counters) unsigned. Not strictly necessary.
Also as an int is a two-byte variable, you have to switch off interrupts while reading it to calculate the rpm.
So your loop (with a few other changes) becomes:
void loop(void)
{
if (millis() - lastTime >= inter) {
lastTime += inter;
noInterrupts();
unsigned int c = count; // copy the value of count.
count = 0; // reset the counter.
interrupts();
rpm = 60 * c; // You can be quite sure to be here at exactly 1000 ms since the last time.
lcd->setCursor(0, 0);
lcd->print(rpm);
lcd->print(" ");
}
}
The change to the LCD code will make the update much more smoothly. The five spaces printed are to clear any extra numbers, if the new number has less digits than the old one.