I just had this exact same question. A petty that was not been solved yet. I have found a solution to be able to distribute the style(s) using PyPi (in my case goosempl, also on GitHub).
I have created a Python module of which the mplstyle-files are a part:
|-- setup.py
|-- package_name
|   |-- __init__.py
|   |-- styles
|   |   |-- example.mplstyle
The idea is now:
- The .mplstylefile(s) gets packaged with the module.
- The module gets installed.
- At the end of the installation a small script runs that extracts the .mplstylefile(s) from the newly installed package and writes them to the matplotlib config directory.
Here are the essentials
setup.py
import atexit
from setuptools                 import setup
from setuptools.command.install import install
def _post_install():
    import goosempl
    package_name.copy_style()
class new_install(install):
    def __init__(self, *args, **kwargs):
        super(new_install, self).__init__(*args, **kwargs)
        atexit.register(_post_install)
__version__ = '0.1.0'
setup(
    name              = 'package_name',
    version           = __version__,
    ...
    install_requires  = ['matplotlib>=2.0.0'],
    packages          = ['package_name'],
    cmdclass          = {'install': new_install},
    package_data      = {'package_name/styles':[
        'package_name/styles/example.mplstyle',
    ]},
)
init.py
def copy_style():
  import os
  import matplotlib
  from pkg_resources import resource_string
  files = [
    'styles/example.mplstyle',
  ]
  for fname in files:
    path = os.path.join(matplotlib.get_configdir(),fname)
    text = resource_string(__name__,fname).decode()
    open(path,'w').write(text)
For future reference see these related questions / documentation: