When starting a Celery worker module, it is assumed that the Celery instance within the module is called `app`. This is not the case in the Celery pattern, where it is called `celery`, and so must be explicitly referenced.
With the latest version of Celery (3.1.6), following this tutorial produces the following error when attempting to start the celery worker:
user_preload = tuple(self.app.user_options['preload'] or ())
AttributeError: 'Flask' object has no attribute 'user_options'
Using `app` as the variable name here confuses celery. Renaming `app` to `flask_app` in the tutorial solves the issue and allows the celery worker to start successfully.