test_cross_engine_pa_fp fails locally.
```
___________________________ test_cross_engine_pa_fp ___________________________

df_cross_compat =    a  b    d      e          f
0  a  1  4.0   True 2013-01-01
1  b  2  5.0  False 2013-01-02
2  c  3  6.0   True 2013-01-03
pa = 'pyarrow', fp = 'fastparquet'

    def test_cross_engine_pa_fp(df_cross_compat, pa, fp):
        # cross-compat with differing reading/writing engines

        df = df_cross_compat
        with tm.ensure_clean() as path:
            df.to_parquet(path, engine=pa, compression=None)

>           result = read_parquet(path, engine=fp)

pandas\tests\io\test_parquet.py:232:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pandas\io\parquet.py:293: in read_parquet
    return impl.read(path, columns=columns, **kwargs)
pandas\io\parquet.py:198: in read
    return parquet_file.to_pandas(columns=columns, **kwargs)
..\..\..\Anaconda3\envs\pandas-dev\lib\site-packages\fastparquet\api.py:421: in to_pandas
    check_column_names(self.columns + list(self.cats), columns, categories)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

columns = ['a', 'b', 'd', 'e', 'f']
args = (['a', 'b', 'd', 'e', 'f', {'kind': 'range', 'name': None, 'start': 0, 'step': 1, ...}], None)
arg = ['a', 'b', 'd', 'e', 'f', {'kind': 'range', 'name': None, 'start': 0, 'step': 1, ...}]

    def check_column_names(columns, *args):
        """Ensure that parameters listing column names have corresponding columns"""
        for arg in args:
            if isinstance(arg, (tuple, list)):
>               if set(arg) - set(columns):
E               TypeError: unhashable type: 'dict'

..\..\..\Anaconda3\envs\pandas-dev\lib\site-packages\fastparquet\util.py:92: TypeError
```

<details>

INSTALLED VERSIONS
------------------
commit           : 0ab32e88481440bfb4a102bb7731cbde2e5ceafe
python           : 3.7.4.final.0
python-bits      : 64
OS               : Windows
OS-release       : 10
machine          : AMD64
processor        : Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
byteorder        : little
LC_ALL           : None
LANG             : en_GB.UTF-8
LOCALE           : None.None

pandas           : 0.25.0+339.g0ab32e884
numpy            : 1.16.4
pytz             : 2019.2
dateutil         : 2.8.0
pip              : 19.2.2
setuptools       : 41.0.1
Cython           : 0.29.13
pytest           : 5.0.1
hypothesis       : 4.32.2
sphinx           : 1.8.5
blosc            : None
feather          : None
xlsxwriter       : 1.1.8
lxml.etree       : 4.4.1
html5lib         : 1.0.1
pymysql          : None
psycopg2         : None
jinja2           : 2.10.1
IPython          : 7.8.0
pandas_datareader: None
bs4              : 4.7.1
bottleneck       : 1.2.1
fastparquet      : 0.3.0
gcsfs            : None
lxml.etree       : 4.4.1
matplotlib       : 3.1.1
numexpr          : 2.7.0
odfpy            : None
openpyxl         : 2.6.2
pandas_gbq       : None
pyarrow          : 0.13.0
pytables         : None
s3fs             : 0.2.1
scipy            : 1.3.1
sqlalchemy       : 1.3.7
tables           : 3.5.2
xarray           : 0.12.1
xlrd             : 1.2.0
xlwt             : 1.3.0
xlsxwriter       : 1.1.8

</details>
