df.to_hdf with mode='a' fails on external drive with IO Error
#### Code Sample, a copy-pastable example if possible

```python
    def store_data(self,table_path,data,append=True,data_columns=True):
        pathComps = table_path.split("/")
        table_name = pathComps[-1]
        dbPath = pathComps[0:-1]
        fullPath = os.path.join(self.databasePath,*dbPath)
        tableStorePath = os.path.join(fullPath,table_name+".h5")
        os.makedirs(fullPath, exist_ok=True)
        data.to_hdf(tableStorePath, mode='a', key=table_name, format='table',append=append,data_columns=data_columns,complevel=9,complib='zlib')
```

this could be made in to a standalone function by just replacing `self.databasePath`, I.E:

```python
    def store_data(diskPath,table_path,data,append=True,data_columns=True):
        pathComps = table_path.split("/")
        table_name = pathComps[-1]
        dbPath = pathComps[0:-1]
        fullPath = os.path.join(diskPath,*dbPath)
        tableStorePath = os.path.join(fullPath,table_name+".h5")
        os.makedirs(fullPath, exist_ok=True)
        data.to_hdf(tableStorePath, mode='a', key=table_name, format='table',append=append,data_columns=data_columns,complevel=9,complib='zlib')
```

#### Problem description

I have a small class that I use to manage some data that I'm working with. I use it to translate a "hdf path" in to an actual on-disk file since storing all the data in one file just ends up being a mess that keeps growing as I debug.

At any rate - it seems when I use `df.to_hdf()`, the target path is on an external drive, and the file does not yet exist, that I get an error saying that the files could not be created (Even though they are and can be seen on disk). Re-running once all the files to be created exist seems to allow the code to run normally. I've only tested this by continually re-running until the files are all created - I'm not sure if using `touch` or similar would have the same effect.

Conversely - running the same commands on my internal disk works fine with no code modification.

I seem to reliably encounter this under MacOS 10.15. I feel like I also encountered this under Windows 10, but it didn't occur to me at the time that it was anything other than a mistake on my part, so I don't have info from that case.

#### Traceback:

```
Traceback (most recent call last):
  File "./field.py", line 39, in <module>
    main()
  File "./field.py", line 31, in main
    aman.store_data((some path),rawField.stack())
  File "/Users/(me)/Documents/PhD/DataProcessing/modules/datamanager/archivemanager.py", line 72, in store_data
    data.to_hdf(tableStorePath, mode='a', key=table_name, format='table',append=append,data_columns=data_columns,complevel=9,complib='zlib')
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/core/generic.py", line 2530, in to_hdf
    pytables.to_hdf(path_or_buf, key, self, **kwargs)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/io/pytables.py", line 278, in to_hdf
    f(store)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/io/pytables.py", line 269, in <lambda>
    f = lambda store: store.append(key, value, **kwargs)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/io/pytables.py", line 1059, in append
    self._write_to_group(key, value, append=append, dropna=dropna, **kwargs)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/io/pytables.py", line 1528, in _write_to_group
    s.create_index(columns=index)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/pandas/io/pytables.py", line 3650, in create_index
    v.create_index(**kw)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/table.py", line 3602, in create_index
    tmp_dir, _blocksizes, _verbose)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/table.py", line 314, in _column__create_index
    blocksizes=blocksizes)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/index.py", line 395, in __init__
    super(Index, self).__init__(parentnode, name, title, new, filters)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/group.py", line 235, in __init__
    super(Group, self).__init__(parentnode, name, _log)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/node.py", line 273, in __init__
    self._g_post_init_hook()
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/index.py", line 549, in _g_post_init_hook
    self.create_temp()
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/index.py", line 1012, in create_temp
    self.tmpfile = self._openFile(self.tmpfilename, "w")
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/file.py", line 315, in open_file
    return File(filename, mode, title, root_uep, filters, **kwargs)
  File "/Users/(me)/.python/dataproc/lib/python3.7/site-packages/tables/file.py", line 778, in __init__
    self._g_new(filename, mode, **params)
  File "tables/hdf5extension.pyx", line 492, in tables.hdf5extension.File._g_new
tables.exceptions.HDF5ExtError: HDF5 error back trace

  File "H5F.c", line 444, in H5Fcreate
    unable to create file
  File "H5Fint.c", line 1531, in H5F_open
    unable to truncate a file which is already open

End of HDF5 error back trace

Unable to open/create file '/Volumes/(ExtDrive)/Data/archives/4CamPeriscope/fields/pytables-axuuju27.tmp'
```
#### Expected Output

#### Output of ``pd.show_versions()``

<details>

Python 3.7.3 (default, Sep  5 2019, 17:14:41) 
[Clang 11.0.0 (clang-1100.0.33.8)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pandas as pd
>>> pd.show_versions()

INSTALLED VERSIONS
------------------
commit           : None
python           : 3.7.3.final.0
python-bits      : 64
OS               : Darwin
OS-release       : 19.0.0
machine          : x86_64
processor        : i386
byteorder        : little
LC_ALL           : None
LANG             : en_US.UTF-8
LOCALE           : en_US.UTF-8

pandas           : 0.25.1
numpy            : 1.17.2
pytz             : 2019.3
dateutil         : 2.8.0
pip              : 19.3
setuptools       : 40.8.0
Cython           : None
pytest           : None
hypothesis       : None
sphinx           : None
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : None
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.10.3
IPython          : 7.8.0
pandas_datareader: None
bs4              : None
bottleneck       : None
fastparquet      : None
gcsfs            : None
lxml.etree       : None
matplotlib       : 3.1.1
numexpr          : 2.7.0
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pytables         : None
s3fs             : None
scipy            : 1.3.1
sqlalchemy       : None
tables           : 3.6.0
xarray           : 0.14.0
xlrd             : None
xlwt             : None
xlsxwriter       : None

</details>
