Cannot build documentation: No such kernel named python3
#### Code Sample, a copy-pastable example if possible

```bash
# Run in local pandas repo
conda create -y -n pandas_dev python=3 -c conda-forge --file ci/requirements_all.txt
conda install -y -n pandas_dev -c conda-forge fastparquet feather-format pandas-datareader pandas-gbq python-blosc pyarrow psycopg2 pymysql s3fs xarray
source activate pandas_dev
python setup.py develop
cd doc
python make.py html
```

#### Output

<details>

```
Running Sphinx v1.5.6
WARNING: while setting up extension conf.py: directive 'autosummary' is already registered, it will be overridden
loading pickled environment... not yet created
[autosummary] generating autosummary for: 10min.rst, advanced.rst, api.rst, basics.rst, categorical.rst, comparison_with_r.rst, comparison_with_sas.rst, comparison_with_sql.rst, computation.rst, contributing.rst, ..., release.rst, remote_data.rst, reshaping.rst, sparse.rst, text.rst, timedeltas.rst, timeseries.rst, tutorials.rst, visualization.rst, whatsnew.rst
[autosummary] generating autosummary for: /Users/hayes/personal/pandas/doc/source/generated/pandas.Categorical.__array__.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.Categorical.from_codes.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.Categorical.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.add_categories.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.as_ordered.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.as_unordered.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.categories.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.codes.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.ordered.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.CategoricalIndex.remove_categories.rst, ..., /Users/hayes/personal/pandas/doc/source/generated/pandas.test.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.testing.assert_frame_equal.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.testing.assert_index_equal.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.testing.assert_series_equal.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.timedelta_range.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.to_datetime.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.to_numeric.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.to_timedelta.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.unique.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.wide_to_long.rst
WARNING: [autosummary] failed to import 'pandas.DataFrame.columns': no module named pandas.DataFrame.columns
WARNING: [autosummary] failed to import 'pandas.DataFrame.index': no module named pandas.DataFrame.index
WARNING: [autosummary] failed to import 'pandas.Panel.items': no module named pandas.Panel.items
WARNING: [autosummary] failed to import 'pandas.Panel.major_axis': no module named pandas.Panel.major_axis
WARNING: [autosummary] failed to import 'pandas.Panel.minor_axis': no module named pandas.Panel.minor_axis
WARNING: [autosummary] failed to import 'pandas.Series.index': no module named pandas.Series.index
[autosummary] generating autosummary for: /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.agg.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.as_blocks.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.at_time.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.between_time.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.bfill.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.blocks.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.bool.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.compound.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.consolidate.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.DataFrame.divide.rst, ..., /Users/hayes/personal/pandas/doc/source/generated/pandas.Timestamp.minute.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.Timestamp.offset.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.Timestamp.to_datetime.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.Timestamp.week.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.env.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.from_custom_template.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.loader.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.set_table_attributes.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.template.rst, /Users/hayes/personal/pandas/doc/source/generated/pandas.io.formats.style.Styler.to_excel.rst
loading intersphinx inventory from http://www.statsmodels.org/devel/objects.inv...
loading intersphinx inventory from http://matplotlib.org/objects.inv...
loading intersphinx inventory from http://docs.python.org/3/objects.inv...
intersphinx inventory has moved: http://docs.python.org/3/objects.inv -> https://docs.python.org/3/objects.inv
loading intersphinx inventory from http://docs.scipy.org/doc/numpy/objects.inv...
intersphinx inventory has moved: http://docs.scipy.org/doc/numpy/objects.inv -> https://docs.scipy.org/doc/numpy/objects.inv
loading intersphinx inventory from http://docs.scipy.org/doc/scipy/reference/objects.inv...
intersphinx inventory has moved: http://docs.scipy.org/doc/scipy/reference/objects.inv -> https://docs.scipy.org/doc/scipy/reference/objects.inv
loading intersphinx inventory from https://pylib.readthedocs.io/en/latest/objects.inv...
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 38 source files that are out of date
updating environment: 1794 added, 0 changed, 0 removed
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section Note
  warn("Unknown section %s" % key)
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section Note
  warn("Unknown section %s" % key)
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section :func:`datetime.datetime` Parameters
  warn("Unknown section %s" % key)
reading sources... [  0%] computation

>>>-------------------------------------------------------------------------
Warning in /Users/hayes/personal/pandas/doc/source/computation.rst at block ending on line None
Specify :okwarning: as an option in the ipython:: block to suppress this message
----------------------------------------------------------------------------
/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/numpy/core/_methods.py:135: RuntimeWarning: Degrees of freedom <= 0 for slice
  keepdims=keepdims)
<<<-------------------------------------------------------------------------
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section Note
  warn("Unknown section %s" % key)
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section Note
  warn("Unknown section %s" % key)
/Users/hayes/personal/pandas/doc/sphinxext/numpydoc/docscrape.py:119: UserWarning: Unknown section :func:`datetime.datetime` Parameters
  warn("Unknown section %s" % key)
reading sources... [ 99%] io

>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/io.rst at block ending on line 4531
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-510-8ba55b61d48c> in <module>()
----> 1 df.to_parquet('example_fp.parquet', engine='fastparquet')

~/personal/pandas/pandas/core/frame.py in to_parquet(self, fname, engine, compression, **kwargs)
   1643         from pandas.io.parquet import to_parquet
   1644         to_parquet(self, fname, engine,
-> 1645                    compression=compression, **kwargs)
   1646
   1647     @Substitution(header='Write out the column names. If a list of strings '

~/personal/pandas/pandas/io/parquet.py in to_parquet(df, path, engine, compression, **kwargs)
    176         raise ValueError("parquet must have string column names")
    177
--> 178     return impl.write(df, path, compression=compression)
    179
    180

~/personal/pandas/pandas/io/parquet.py in write(self, df, path, compression, **kwargs)
    114         with catch_warnings(record=True):
    115             self.api.write(path, df,
--> 116                            compression=compression, **kwargs)
    117
    118     def read(self, path):

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/writer.py in write(filename, data, row_group_offsets, compression, file_scheme, open_with, mkdirs, has_nulls, write_index, partition_on, fixed_text, append, object_encoding, times)
    800     if file_scheme == 'simple':
    801         write_simple(filename, data, fmd, row_group_offsets,
--> 802                      compression, open_with, has_nulls, append)
    803     elif file_scheme in ['hive', 'drill']:
    804         if append:

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/writer.py in write_simple(fn, data, fmd, row_group_offsets, compression, open_with, has_nulls, append)
    696                    else None)
    697             rg = make_row_group(f, data[start:end], fmd.schema,
--> 698                                 compression=compression)
    699             if rg is not None:
    700                 fmd.row_groups.append(rg)

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/writer.py in make_row_group(f, data, schema, compression)
    592                 comp = compression
    593             chunk = write_column(f, data[column.name], column,
--> 594                                  compression=comp)
    595             rg.columns.append(chunk)
    596     rg.total_byte_size = sum([c.meta_data.total_uncompressed_size for c in

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/writer.py in write_column(f, data, selement, compression)
    521
    522     if compression:
--> 523         bdata = compress_data(bdata, compression)
    524         l1 = len(bdata)
    525     else:

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/compression.py in compress_data(data, algorithm)
     71     if algorithm.upper() not in compressions:
     72         raise RuntimeError("Compression '%s' not available.  Options: %s" %
---> 73                 (algorithm, sorted(compressions)))
     74     return compressions[algorithm.upper()](data)
     75

RuntimeError: Compression 'snappy' not available.  Options: ['GZIP', 'UNCOMPRESSED']
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/io.rst at block ending on line 4540
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
NotADirectoryError                        Traceback (most recent call last)
~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/api.py in __init__(self, fn, verify, open_with, sep, root)
     95                 self.fn = fn2
---> 96                 with open_with(fn2, 'rb') as f:
     97                     self._parse_header(f, verify)

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/util.py in default_open(f, mode)
     43 def default_open(f, mode='rb'):
---> 44     return open(f, mode)
     45

NotADirectoryError: [Errno 20] Not a directory: 'example_fp.parquet/_metadata'

During handling of the above exception, another exception occurred:

OSError                                   Traceback (most recent call last)
<ipython-input-512-d4bce7d5df53> in <module>()
----> 1 result = pd.read_parquet('example_fp.parquet', engine='fastparquet')

~/personal/pandas/pandas/io/parquet.py in read_parquet(path, engine, **kwargs)
    202
    203     impl = get_engine(engine)
--> 204     return impl.read(path)

~/personal/pandas/pandas/io/parquet.py in read(self, path)
    118     def read(self, path):
    119         path, _, _ = get_filepath_or_buffer(path)
--> 120         return self.api.ParquetFile(path).to_pandas()
    121
    122

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/api.py in __init__(self, fn, verify, open_with, sep, root)
    100                 self.fn = fn
    101                 with open_with(fn, 'rb') as f:
--> 102                     self._parse_header(f, verify)
    103         self.open = open_with
    104

~/miniconda/envs/pandas_dev/lib/python3.6/site-packages/fastparquet/api.py in _parse_header(self, f, verify)
    108             if verify:
    109                 assert f.read(4) == b'PAR1'
--> 110             f.seek(-8, 2)
    111             head_size = struct.unpack('<i', f.read(4))[0]
    112             if verify:

OSError: [Errno 22] Invalid argument
<<<-------------------------------------------------------------------------

reading sources... [ 99%] r_interface

>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 40
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-1-79b90b86f23f> in <module>()
----> 1 from rpy2.robjects import r, pandas2ri

ModuleNotFoundError: No module named 'rpy2'
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 40
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-0531561cbbe9> in <module>()
----> 1 pandas2ri.activate()

NameError: name 'pandas2ri' is not defined
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 51
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-3-8bdc5639fb0c> in <module>()
----> 1 r.data('iris')

~/personal/pandas/pandas/core/window.py in __getattr__(self, attr)
    177
    178         raise AttributeError("%r object has no attribute %r" %
--> 179                              (type(self).__name__, attr))
    180
    181     def _dir_additions(self):

AttributeError: 'Rolling' object has no attribute 'data'
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 51
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-4-b9fbcc010df6> in <module>()
----> 1 r['iris'].head()

~/personal/pandas/pandas/core/base.py in __getitem__(self, key)
    252         elif not getattr(self, 'as_index', False):
    253             if key not in self.obj.columns:
--> 254                 raise KeyError("Column not found: {key}".format(key=key))
    255             return self._gotitem(key, ndim=2)
    256

KeyError: 'Column not found: iris'
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 69
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-7620636bf651> in <module>()
----> 1 r_dataframe = pandas2ri.py2ri(df)

NameError: name 'pandas2ri' is not defined
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 69
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-7-4ab82496598b> in <module>()
----> 1 print(type(r_dataframe))

NameError: name 'r_dataframe' is not defined
<<<-------------------------------------------------------------------------



>>>-------------------------------------------------------------------------
Exception in /Users/hayes/personal/pandas/doc/source/r_interface.rst at block ending on line 69
Specify :okexcept: as an option in the ipython:: block to suppress this message
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-8-714489a67f8e> in <module>()
----> 1 print(r_dataframe)

NameError: name 'r_dataframe' is not defined
<<<-------------------------------------------------------------------------

Exception occurred while building, starting debugger:
Traceback (most recent call last):
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/jupyter_client/kernelspec.py", line 201, in get_kernel_spec
    resource_dir = d[kernel_name.lower()]
KeyError: 'python3'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbsphinx.py", line 634, in parse
    rststring, resources = exporter.from_notebook_node(nb, resources)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbsphinx.py", line 578, in from_notebook_node
    nb, resources = pp.preprocess(nb, resources)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 257, in preprocess
    cwd=path)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbconvert/preprocessors/execute.py", line 237, in start_new_kernel
    km.start_kernel(**kwargs)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/jupyter_client/manager.py", line 244, in start_kernel
    kernel_cmd = self.format_kernel_cmd(extra_arguments=extra_arguments)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/jupyter_client/manager.py", line 175, in format_kernel_cmd
    cmd = self.kernel_spec.argv + extra_arguments
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/jupyter_client/manager.py", line 87, in kernel_spec
    self._kernel_spec = self.kernel_spec_manager.get_kernel_spec(self.kernel_name)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/jupyter_client/kernelspec.py", line 203, in get_kernel_spec
    raise NoSuchKernel(kernel_name)
jupyter_client.kernelspec.NoSuchKernel: No such kernel named python3

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/cmdline.py", line 296, in main
    app.build(opts.force_all, filenames)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/application.py", line 333, in build
    self.builder.build_update()
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 251, in build_update
    'out of date' % len(to_build))
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/builders/__init__.py", line 265, in build
    self.doctreedir, self.app))
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 556, in update
    self._read_serial(docnames, app)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 576, in _read_serial
    self.read_doc(docname, app)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/environment/__init__.py", line 684, in read_doc
    pub.publish()
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/sphinx/io.py", line 55, in read
    self.parse()
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbsphinx.py", line 645, in parse
    str(e))
nbsphinx.NotebookError: NoSuchKernel in style.ipynb:
No such kernel named python3
> /Users/hayes/miniconda/envs/pandas_dev/lib/python3.6/site-packages/nbsphinx.py(645)parse()
-> str(e))
(Pdb)
```

</details>

#### Problem description

I'm trying to build the documentation, following the instructions in the [Contributing to pandas](https://pandas.pydata.org/pandas-docs/stable/contributing.html#how-to-build-the-pandas-documentation) docs. Unfortunately, I hit a Python debugger along the way, causing the build to fail.

Do you have any advice on how to get past this issue?

#### Expected Output

No errors when building the documentation when following the documentation. Ideally no warnings either.

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

<details>

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

pandas: 0.22.0.dev0+20.g8449ffd90
pytest: 3.2.3
pip: 9.0.1
setuptools: 36.6.0
Cython: 0.27.2
numpy: 1.13.3
scipy: 0.19.1
pyarrow: None
xarray: None
IPython: 6.2.1
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.1
pytz: 2017.3
blosc: None
bottleneck: 1.2.1
tables: 3.4.2
numexpr: 2.6.4
feather: None
matplotlib: 2.1.0
openpyxl: 2.5.0b1
xlrd: 1.1.0
xlwt: 1.3.0
xlsxwriter: 1.0.2
lxml: 4.1.0
bs4: 4.6.0
html5lib: 0.999999999
sqlalchemy: 1.1.13
pymysql: 0.7.11.None
psycopg2: None
jinja2: 2.9.6
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
