I had a similar issue with zipfile giving random errors. It seems to be related to having the handle opened and saved during instantiation – which does not work with multiprocessing. The solution was to open the handle in __getitem__() and cache it.
HTH