Since iRODS uses thread locks I tried overriding the original session class to make it possible.
Test it with:
import pickle
import base64
original_session = iRODSPickleSession(...)
# serialize
serialized_session = base64.encodestring(pickle.dumps(original_session))
# recover
usable_session = pickle.loads(base64.decodestring(serialized_session))