title: Grouping dask.bag items into distinct partitions
body: <p>I was wondering if somebody could help me understand the way <code>Bag</code> objects handle partitions. Put simply, I am trying to group items currently in a <code>Bag</code> so that each group is in its own partition. What's confusing me is that the <code>Bag.groupby()</code> method asks for a number of partitions. Shouldn't this be implied by the grouping function? E.g., two partitions if the grouping function returns a boolean?</p>
  
  <pre><code>&gt;&gt;&gt; a = dask.bag.from_sequence(range(20), npartitions = 1)
  &gt;&gt;&gt; a.npartitions
  1
  &gt;&gt;&gt; b = a.groupby(lambda x: x % 2 == 0)
  &gt;&gt;&gt; b.npartitions
  1
  </code></pre>
  
  <p>I'm obviously missing something here. Is there a way to group <code>Bag</code> items into separate partitions?</p>