Turns out that how you pickle makes a difference. If the dataframe was pickled through a pickle dump, it works:
with open('test.pkl','wb') as handle:
pickle.dump(df,handle)
On second computer, in different file:
with open('path/to/test.pkl','rb') as handle:
data = pickle.load(handle)
# or:
data = pd.read_pickle('path/to/test.pkl')
However: If you select pickle.HIGHEST_PROTOCOL
as the protocol for dumping, the same error will arise no matter how the pickle is loaded
# Gave pickle with same missing module error on loading:
with open('test.pkl','wb') as handle:
pickle.dump(df,handle,protocol=pickle.HIGHEST_PROTOCOL)
I have not done any investigation on why the error appears and came to this solution simply through trial and error.