title: Tensorflow py_func TypeError with tf.data.Dataset output
body: <p>I am trying to return a dataset from a function using py_func for use in the tensorflow Dataset pipeline/api. However, py_func throws an error: </p>
  
  <pre><code>TypeError: Expected DataType for argument 'Tout' not &lt;class 'tensorflow.python.data.ops.dataset_ops.Dataset'&gt;.
  </code></pre>
  
  <p>A minimal example is as follows:</p>
  
  <pre><code>import tensorflow as tf
  import numpy as np
  
  
  def fn(x, y):
      a = tf.data.Dataset_from_tensors((x, y))
      b = tf.data.Dataset_from_tensors((x, y))
      return a.concatenate(b)
  
  if __name__ == "__main__":
      features = np.random.rand(5, 5, 5, 1)
      labels = np.random.rand(5, 5)
  
      dataset = tf.data.Dataset.from_tensors((features, labels))
      dataset = dataset.flat_map(
          lambda feature, label:  tuple(tf.py_func(
              fn, [feature, label], [tf.data.Dataset])))
      iterator = dataset.make_one_shot_iterator()
      next_element = iterator.get_next()
      sess = tf.Session()
      val = sess.run(next_element)
  </code></pre>
  
  <p>Is this a bug with tensorflow, or am I using the api incorrectly? Thanks!</p>