'Earlystop' callback missing on model.fit() method:
model.fit(train_images, train_labels, epochs=20, validation_split=0.2, callbacks=[tensorboard])
should be:
model.fit(train_images, train_labels, epochs=20, validation_split=0.2, callbacks=[earlystop, tensorboard])