title: Pickling a subclass of an OrderedDict
body: <p>The following statements:</p>
  
  <pre><code>import pickle
  from collections import OrderedDict as Odict
  
  class A(Odict):
      def __init__(self, items):
          super().__init__(items)
  
  items = Odict((('a',1), ('b', 2)))
  a = A(items)
  
  with open('test.pickle','wb') as fout:
      pickle.dump(a, fout)
  
  with open('test.pickle','rb') as fin:
      pickle.load(fin)
  </code></pre>
  
  <p>Lead to this error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "&lt;stdin&gt;", line 2, in &lt;module&gt;
  TypeError: __init__() missing 1 required positional argument: 'items'
  </code></pre>
  
  <p>But work fine with a plain <code>dict</code> rather than <code>OrderedDict</code>. I know in this case I don't need the <code>__init__</code>, but this problem is preventing from using the multiprocessing module with a more complex subclass of <code>OrderedDict</code> where other arguments are stored as attributes and I can't avoid having it. (I used python 3.4.6).</p>