class_docstr: Dataset stored in a storage using pickle.
  
  :mod:`pickle` is the default serialization library of Python.
  This dataset stores any objects in a storage using :mod:`pickle`.
  Even when a user wants to use a large dataset, this dataset can stores all
  data in a large storage like HDD and each data can be randomly accessible.
  
  .. testsetup::
  
      import tempfile
      fs, path_to_data = tempfile.mkstemp()
  
  >>> with chainer.datasets.open_pickle_dataset_writer(path_to_data) as w:
  ...     w.write((1, 2.0, 'hello'))
  ...     w.write((2, 3.0, 'good-bye'))
  ...
  >>> with chainer.datasets.open_pickle_dataset(path_to_data) as dataset:
  ...     print(dataset[1])
  ...
  (2, 3.0, 'good-bye')
  
  .. testcleanup::
  
      import os
      os.close(fs)
  
  Args:
      reader: File like object. `reader` must support random access.
code: def __setstate__(self, state):
      self.__dict__.update(state)
      self._lock = threading.RLock()
      self._register_hook()
  
imports: import io
  import multiprocessing.util
  import threading
  import six
  import six.moves.cPickle
  from chainer.dataset import dataset_mixin
label_desc: Use image node_id 5 for calling the PickleDataset obj's underlying member method code with example usage: obj.__setstate__(state) without return types