IntervalIndex raises TypeError on PrettyPrint
#### Code Sample, a copy-pastable example if possible

Consider the following series
```python
left = Float64Index([329.973, 345.137, 360.191, 376.313, 393.235, 411.969, 434.968, 464.453], dtype='float64')
right = pd.Float64Index([345.137, 360.191, 376.313, 393.235, 411.969, 434.968, 464.453, 507.679], dtype='float64')
idx = pd.IntervalIndex([pd.Interval(l, r) for l, r in zip(left, right)])
markers = pd.Series(['^', 'p', 'd', 'P', 'X', 'o', 's', 'v'],  index=idx)

```
#### Problem description

the `IntervalIndex` raises a `TypeError` when printing
```python
>>> markers

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~/.conda/envs/test-env/lib/python3.7/site-packages/IPython/core/formatters.py in __call__(self, obj)
    700                 type_pprinters=self.type_printers,
    701                 deferred_pprinters=self.deferred_printers)
--> 702             printer.pretty(obj)
    703             printer.flush()
    704             return stream.getvalue()

~/.conda/envs/test-env/lib/python3.7/site-packages/IPython/lib/pretty.py in pretty(self, obj)
    403                         if cls is not object \
    404                                 and callable(cls.__dict__.get('__repr__')):
--> 405                             return _repr_pprint(obj, self, cycle)
    406 
    407             return _default_pprint(obj, self, cycle)

~/.conda/envs/test-env/lib/python3.7/site-packages/IPython/lib/pretty.py in _repr_pprint(obj, p, cycle)
    693     """A pprint that just redirects to the normal repr function."""
    694     # Find newlines and replace them with p.break_()
--> 695     output = repr(obj)
    696     lines = output.splitlines()
    697     with p.group():

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/series.py in __repr__(self)
   1369             min_rows=min_rows,
   1370             max_rows=max_rows,
-> 1371             length=show_dimensions,
   1372         )
   1373         result = buf.getvalue()

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/series.py in to_string(self, buf, na_rep, float_format, header, index, length, dtype, name, max_rows, min_rows)
   1435             max_rows=max_rows,
   1436         )
-> 1437         result = formatter.to_string()
   1438 
   1439         # catch contract violations

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/io/formats/format.py in to_string(self)
    358             )
    359 
--> 360         fmt_index, have_header = self._get_formatted_index()
    361         fmt_values = self._get_formatted_values()
    362 

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/io/formats/format.py in _get_formatted_index(self)
    338         else:
    339             have_header = index.name is not None
--> 340             fmt_index = index.format(name=True)
    341         return fmt_index, have_header
    342 

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/indexes/base.py in format(self, name, formatter, **kwargs)
    964             return header + list(self.map(formatter))
    965 
--> 966         return self._format_with_header(header, **kwargs)
    967 
    968     def _format_with_header(self, header, na_rep="NaN", **kwargs):

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/indexes/interval.py in _format_with_header(self, header, **kwargs)
   1000 
   1001     def _format_with_header(self, header, **kwargs):
-> 1002         return header + list(self._format_native_types(**kwargs))
   1003 
   1004     def _format_native_types(self, na_rep="NaN", quoting=None, **kwargs):

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/indexes/interval.py in _format_native_types(self, na_rep, quoting, **kwargs)
   1004     def _format_native_types(self, na_rep="NaN", quoting=None, **kwargs):
   1005         # GH 28210: use base method but with different default na_rep
-> 1006         return super()._format_native_types(na_rep=na_rep, quoting=quoting, **kwargs)
   1007 
   1008     def _format_data(self, name=None):

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/indexes/base.py in _format_native_types(self, na_rep, quoting, **kwargs)
   1026         Actually format specific types of the index.
   1027         """
-> 1028         mask = isna(self)
   1029         if not self.is_object() and not quoting:
   1030             values = np.asarray(self).astype(str)

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/dtypes/missing.py in isna(obj)
    124     Name: 1, dtype: bool
    125     """
--> 126     return _isna(obj)
    127 
    128 

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/dtypes/missing.py in _isna_old(obj)
    181         return False
    182     elif isinstance(obj, (ABCSeries, np.ndarray, ABCIndexClass, ABCExtensionArray)):
--> 183         return _isna_ndarraylike_old(obj)
    184     elif isinstance(obj, ABCGeneric):
    185         return obj._constructor(obj._data.isna(func=_isna_old))

~/.conda/envs/test-env/lib/python3.7/site-packages/pandas/core/dtypes/missing.py in _isna_ndarraylike_old(obj)
    288         result = values.view("i8") == iNaT
    289     else:
--> 290         result = ~np.isfinite(values)
    291 
    292     # box

TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
```




**Note**: We receive a lot of issues on our GitHub tracker, so it is very possible that your issue has been posted before. Please check first before submitting so that we do not have to handle and close duplicates!

**Note**: Many problems can be resolved by simply upgrading `pandas` to the latest version. Before submitting, please check if that solution works for you. If possible, you may want to check if `master` addresses this issue, but that is not necessary.

For documentation-related issues, you can check the latest versions of the docs on `master` here:

https://pandas-docs.github.io/pandas-docs-travis/

If the issue has not been resolved there, go ahead and file it in the issue tracker.

#### Expected Output

When we change the index to a `categorical`, the visual representation prints
```python
>>> markers.index = pd.CategoricalIndex(markers.index)
>>> markers
(329.973, 345.137]    ^
(345.137, 360.191]    p
(360.191, 376.313]    d
(376.313, 393.235]    P
(393.235, 411.969]    X
(411.969, 434.968]    o
(434.968, 464.453]    s
(464.453, 507.679]    v
dtype: object
```


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

INSTALLED VERSIONS
------------------
commit           : None
python           : 3.7.6.final.0
python-bits      : 64
OS               : Linux
OS-release       : 3.10.0-1062.4.3.el7.x86_64
machine          : x86_64
processor        : x86_64
byteorder        : little
LC_ALL           : None
LANG             : en_US.UTF-8
LOCALE           : en_US.UTF-8

pandas           : 1.0.1
numpy            : 1.18.1
pytz             : 2019.3
dateutil         : 2.8.1
pip              : 20.0.2
setuptools       : 45.2.0.post20200210
Cython           : None
pytest           : 5.3.5
hypothesis       : 5.5.4
sphinx           : 2.4.0
blosc            : None
feather          : None
xlsxwriter       : None
lxml.etree       : 4.5.0
html5lib         : None
pymysql          : None
psycopg2         : None
jinja2           : 2.11.1
IPython          : 7.12.0
pandas_datareader: None
bs4              : 4.8.2
bottleneck       : 1.3.1
fastparquet      : None
gcsfs            : None
lxml.etree       : 4.5.0
matplotlib       : 3.1.3
numexpr          : 2.7.1
odfpy            : None
openpyxl         : None
pandas_gbq       : None
pyarrow          : None
pytables         : None
pytest           : 5.3.5
pyxlsb           : None
s3fs             : None
scipy            : 1.4.1
sqlalchemy       : 1.3.13
tables           : 3.6.1
tabulate         : None
xarray           : None
xlrd             : None
xlwt             : None
xlsxwriter       : None
numba            : None

</details>
