Repository: dask/dask

Issue:
read_csv() not working
Hi, 
```python
url = "https://raw.githubusercontent.com/r0f1/sample_datasets/master/bank-additional-full.csv"

import pandas as pd
pd.read_csv(url, sep=";")

import dask.dataframe as dd
df = dd.read_csv(url, sep=";")
```

The first command works, the second does not. I get the following error message. Why it that?

```
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-28-18ee5ee6fd2a> in <module>
----> 1 df = dd.read_csv("https://raw.githubusercontent.com/r0f1/sample_datasets/master/bank-additional-full.csv", sep=";")

/opt/conda/lib/python3.7/site-packages/dask/dataframe/io/csv.py in read(urlpath, blocksize, collection, lineterminator, compression, sample, enforce, assume_missing, storage_options, include_path_column, **kwargs)
    486                            storage_options=storage_options,
    487                            include_path_column=include_path_column,
--> 488                            **kwargs)
    489     read.__doc__ = READ_DOC_TEMPLATE.format(reader=reader_name,
    490                                             file_type=file_type)

/opt/conda/lib/python3.7/site-packages/dask/dataframe/io/csv.py in read_pandas(reader, urlpath, blocksize, collection, lineterminator, compression, sample, enforce, assume_missing, storage_options, include_path_column, **kwargs)
    341                        compression=compression,
    342                        include_path=include_path_column,
--> 343                        **(storage_options or {}))
    344 
    345     if include_path_column:

/opt/conda/lib/python3.7/site-packages/dask/bytes/core.py in read_bytes(urlpath, delimiter, not_zero, blocksize, sample, compression, include_path, **kwargs)
    126         with OpenFile(fs, paths[0], compression=compression) as f:
    127             nbytes = 10000 if sample is True else sample
--> 128             sample = read_block(f, 0, nbytes, delimiter)
    129     if include_path:
    130         return sample, out, paths

/opt/conda/lib/python3.7/site-packages/dask/bytes/utils.py in read_block(f, offset, length, delimiter)
    236         f.seek(offset)
    237 
--> 238     return f.read(length)
    239 
    240 

/opt/conda/lib/python3.7/site-packages/dask/bytes/http.py in read(self, length)
    183             # EOF (python files don't error, just return no data)
    184             return b''
--> 185         self. _fetch(self.loc, end)
    186         data = self.cache[self.loc - self.start:end - self.start]
    187         self.loc = end

/opt/conda/lib/python3.7/site-packages/dask/bytes/http.py in _fetch(self, start, end)
    203                 new = self._fetch_range(start, self.start)
    204                 self.start = start
--> 205                 self.cache = new + self.cache
    206         elif end > self.end:
    207             if self.end > self.size:

TypeError: can't concat NoneType to bytes
```



Discussion:

Resolving patch:
diff --git a/dask/bytes/http.py b/dask/bytes/http.py
--- a/dask/bytes/http.py
+++ b/dask/bytes/http.py
@@ -122,7 +122,7 @@ def __init__(self, url, session=None, block_size=None, **kwargs):
                 raise err
             self.size = None  # pragma: no cover
 
-        self.cache = None
+        self.cache = b''
         self.closed = False
         self.start = None
         self.end = None


Test patch: