We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Where is `fast_pred_var` moving?
I received the following warning when using `fast_pred_var`:

```
/cluster/nhunt/anaconda/envs/bayes_opt/lib/python3.7/site-packages/gpytorch/beta_features.py:17:
DeprecationWarning: `gpytorch.settings.fast_pred_var` has moved to `gpytorch.settings.fast_pred_var`.
```

It seems that I'm being warned that `fast_pred_var` has moved to its current location. Was there a typo in the warning about how we should be using this setting now?

```bash
$ pip list | grep gpytorch
gpytorch           0.2.1
```

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `gpytorch/__init__.py`
Content:
```
1 #!/usr/bin/env python3
2 from .module import Module
3 from . import (
4     beta_features,
5     distributions,
6     kernels,
7     lazy,
8     likelihoods,
9     means,
10     mlls,
11     models,
12     priors,
13     settings,
14     utils,
15     variational,
16 )
17 from .functions import (
18     add_diag,
19     add_jitter,
20     dsmm,
21     inv_matmul,
22     inv_quad,
23     inv_quad_logdet,
24     logdet,
25     log_normal_cdf,
26     matmul,
27     normal_cdf,
28     root_decomposition,
29     root_inv_decomposition,
30     # Deprecated
31     inv_quad_log_det,
32     log_det,
33 )
34 from .mlls import ExactMarginalLogLikelihood, VariationalMarginalLogLikelihood
35 from .lazy import lazify, delazify
36 
37 
38 __version__ = "0.2.1"
39 
40 # Old deprecated stuff
41 fast_pred_var = beta_features._moved_beta_feature(settings.fast_pred_var, "gpytorch.settings.fast_pred_var")
42 
43 __all__ = [
44     # Submodules
45     "distributions",
46     "kernels",
47     "lazy",
48     "likelihoods",
49     "means",
50     "mlls",
51     "models",
52     "priors",
53     "utils",
54     "variational",
55     # Classes
56     "Module",
57     "ExactMarginalLogLikelihood",
58     "VariationalMarginalLogLikelihood",
59     # Functions
60     "add_diag",
61     "add_jitter",
62     "delazify",
63     "dsmm",
64     "inv_matmul",
65     "inv_quad",
66     "inv_quad_logdet",
67     "lazify",
68     "logdet",
69     "log_normal_cdf",
70     "matmul",
71     "normal_cdf",
72     "root_decomposition",
73     "root_inv_decomposition",
74     # Context managers
75     "beta_features",
76     "settings",
77     # Other
78     "__version__",
79     # Deprecated
80     "fast_pred_var",
81     "inv_quad_log_det",
82     "log_det",
83 ]
84
```

Path: `gpytorch/beta_features.py`
Content:
```
1 #!/usr/bin/env python3
2 
3 import warnings
4 from .settings import _feature_flag, _value_context
5 from .settings import fast_pred_var as _fast_pred_var
6 from .settings import fast_pred_samples as _fast_pred_samples
7 
8 
9 class _moved_beta_feature(object):
10     def __init__(self, new_cls, orig_name=None):
11         self.new_cls = new_cls
12         self.orig_name = orig_name if orig_name is not None else "gpytorch.settings.{}".format(new_cls.__name__)
13 
14     def __call__(self, *args, **kwargs):
15         warnings.warn(
16             "`{}` has moved to `gpytorch.settings.{}`.".format(self.orig_name, self.new_cls.__name__),
17             DeprecationWarning
18         )
19         return self.new_cls(*args, **kwargs)
20 
21     def __getattr__(self, name):
22         return getattr(self.new_cls, name)
23 
24 
25 fast_pred_var = _moved_beta_feature(_fast_pred_var)
26 fast_pred_samples = _moved_beta_feature(_fast_pred_samples)
27 
28 
29 class checkpoint_kernel(_value_context):
30     """
31     Should the kernel be computed in chunks with checkpointing or not? (Default, no)
32 
33     If `split_size = 0`:
34         The kernel is computed explicitly. During training, the kernel matrix is
35         kept in memory for the backward pass. This is the fastest option but the
36         most memory intensive.
37     If `split_size > 0`:
38         The kernel is never fully computed or stored. Instead, the kernel is only
39         accessed through matrix multiplication. The matrix multiplication is
40         computed in `segments` chunks. This is slower, but requires significantly less memory.
41 
42     Default: 0
43     """
44 
45     _global_value = 0
46 
47 
48 class diagonal_correction(_feature_flag):
49     """
50     Add a diagonal correction to scalable inducing point methods
51     """
52 
53     _state = True
54 
55 
56 class default_preconditioner(_feature_flag):
57     """
58     Add a diagonal correction to scalable inducing point methods
59     """
60 
61     pass
62 
63 
64 __all__ = ["fast_pred_var", "fast_pred_samples", "diagonal_correction", "default_preconditioner"]
65
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/gpytorch/__init__.py b/gpytorch/__init__.py
--- a/gpytorch/__init__.py
+++ b/gpytorch/__init__.py
@@ -37,9 +37,6 @@
 
 __version__ = "0.2.1"
 
-# Old deprecated stuff
-fast_pred_var = beta_features._moved_beta_feature(settings.fast_pred_var, "gpytorch.settings.fast_pred_var")
-
 __all__ = [
     # Submodules
     "distributions",
@@ -77,7 +74,6 @@
     # Other
     "__version__",
     # Deprecated
-    "fast_pred_var",
     "inv_quad_log_det",
     "log_det",
 ]
diff --git a/gpytorch/beta_features.py b/gpytorch/beta_features.py
--- a/gpytorch/beta_features.py
+++ b/gpytorch/beta_features.py
@@ -2,8 +2,6 @@
 
 import warnings
 from .settings import _feature_flag, _value_context
-from .settings import fast_pred_var as _fast_pred_var
-from .settings import fast_pred_samples as _fast_pred_samples
 
 
 class _moved_beta_feature(object):
@@ -22,10 +20,6 @@
         return getattr(self.new_cls, name)
 
 
-fast_pred_var = _moved_beta_feature(_fast_pred_var)
-fast_pred_samples = _moved_beta_feature(_fast_pred_samples)
-
-
 class checkpoint_kernel(_value_context):
     """
     Should the kernel be computed in chunks with checkpointing or not? (Default, no)
@@ -61,4 +55,4 @@
     pass
 
 
-__all__ = ["fast_pred_var", "fast_pred_samples", "diagonal_correction", "default_preconditioner"]
+__all__ = ["checkpoint_kernel", "diagonal_correction", "default_preconditioner"]

{"golden_diff": "diff --git a/gpytorch/__init__.py b/gpytorch/__init__.py\n--- a/gpytorch/__init__.py\n+++ b/gpytorch/__init__.py\n@@ -37,9 +37,6 @@\n \n __version__ = \"0.2.1\"\n \n-# Old deprecated stuff\n-fast_pred_var = beta_features._moved_beta_feature(settings.fast_pred_var, \"gpytorch.settings.fast_pred_var\")\n-\n __all__ = [\n     # Submodules\n     \"distributions\",\n@@ -77,7 +74,6 @@\n     # Other\n     \"__version__\",\n     # Deprecated\n-    \"fast_pred_var\",\n     \"inv_quad_log_det\",\n     \"log_det\",\n ]\ndiff --git a/gpytorch/beta_features.py b/gpytorch/beta_features.py\n--- a/gpytorch/beta_features.py\n+++ b/gpytorch/beta_features.py\n@@ -2,8 +2,6 @@\n \n import warnings\n from .settings import _feature_flag, _value_context\n-from .settings import fast_pred_var as _fast_pred_var\n-from .settings import fast_pred_samples as _fast_pred_samples\n \n \n class _moved_beta_feature(object):\n@@ -22,10 +20,6 @@\n         return getattr(self.new_cls, name)\n \n \n-fast_pred_var = _moved_beta_feature(_fast_pred_var)\n-fast_pred_samples = _moved_beta_feature(_fast_pred_samples)\n-\n-\n class checkpoint_kernel(_value_context):\n     \"\"\"\n     Should the kernel be computed in chunks with checkpointing or not? (Default, no)\n@@ -61,4 +55,4 @@\n     pass\n \n \n-__all__ = [\"fast_pred_var\", \"fast_pred_samples\", \"diagonal_correction\", \"default_preconditioner\"]\n+__all__ = [\"checkpoint_kernel\", \"diagonal_correction\", \"default_preconditioner\"]\n", "issue": "Where is `fast_pred_var` moving?\nI received the following warning when using `fast_pred_var`:\r\n\r\n```\r\n/cluster/nhunt/anaconda/envs/bayes_opt/lib/python3.7/site-packages/gpytorch/beta_features.py:17:\r\nDeprecationWarning: `gpytorch.settings.fast_pred_var` has moved to `gpytorch.settings.fast_pred_var`.\r\n```\r\n\r\nIt seems that I'm being warned that `fast_pred_var` has moved to its current location. Was there a typo in the warning about how we should be using this setting now?\r\n\r\n```bash\r\n$ pip list | grep gpytorch\r\ngpytorch           0.2.1\r\n```\n", "before_files": [{"content": "#!/usr/bin/env python3\nfrom .module import Module\nfrom . import (\n    beta_features,\n    distributions,\n    kernels,\n    lazy,\n    likelihoods,\n    means,\n    mlls,\n    models,\n    priors,\n    settings,\n    utils,\n    variational,\n)\nfrom .functions import (\n    add_diag,\n    add_jitter,\n    dsmm,\n    inv_matmul,\n    inv_quad,\n    inv_quad_logdet,\n    logdet,\n    log_normal_cdf,\n    matmul,\n    normal_cdf,\n    root_decomposition,\n    root_inv_decomposition,\n    # Deprecated\n    inv_quad_log_det,\n    log_det,\n)\nfrom .mlls import ExactMarginalLogLikelihood, VariationalMarginalLogLikelihood\nfrom .lazy import lazify, delazify\n\n\n__version__ = \"0.2.1\"\n\n# Old deprecated stuff\nfast_pred_var = beta_features._moved_beta_feature(settings.fast_pred_var, \"gpytorch.settings.fast_pred_var\")\n\n__all__ = [\n    # Submodules\n    \"distributions\",\n    \"kernels\",\n    \"lazy\",\n    \"likelihoods\",\n    \"means\",\n    \"mlls\",\n    \"models\",\n    \"priors\",\n    \"utils\",\n    \"variational\",\n    # Classes\n    \"Module\",\n    \"ExactMarginalLogLikelihood\",\n    \"VariationalMarginalLogLikelihood\",\n    # Functions\n    \"add_diag\",\n    \"add_jitter\",\n    \"delazify\",\n    \"dsmm\",\n    \"inv_matmul\",\n    \"inv_quad\",\n    \"inv_quad_logdet\",\n    \"lazify\",\n    \"logdet\",\n    \"log_normal_cdf\",\n    \"matmul\",\n    \"normal_cdf\",\n    \"root_decomposition\",\n    \"root_inv_decomposition\",\n    # Context managers\n    \"beta_features\",\n    \"settings\",\n    # Other\n    \"__version__\",\n    # Deprecated\n    \"fast_pred_var\",\n    \"inv_quad_log_det\",\n    \"log_det\",\n]\n", "path": "gpytorch/__init__.py"}, {"content": "#!/usr/bin/env python3\n\nimport warnings\nfrom .settings import _feature_flag, _value_context\nfrom .settings import fast_pred_var as _fast_pred_var\nfrom .settings import fast_pred_samples as _fast_pred_samples\n\n\nclass _moved_beta_feature(object):\n    def __init__(self, new_cls, orig_name=None):\n        self.new_cls = new_cls\n        self.orig_name = orig_name if orig_name is not None else \"gpytorch.settings.{}\".format(new_cls.__name__)\n\n    def __call__(self, *args, **kwargs):\n        warnings.warn(\n            \"`{}` has moved to `gpytorch.settings.{}`.\".format(self.orig_name, self.new_cls.__name__),\n            DeprecationWarning\n        )\n        return self.new_cls(*args, **kwargs)\n\n    def __getattr__(self, name):\n        return getattr(self.new_cls, name)\n\n\nfast_pred_var = _moved_beta_feature(_fast_pred_var)\nfast_pred_samples = _moved_beta_feature(_fast_pred_samples)\n\n\nclass checkpoint_kernel(_value_context):\n    \"\"\"\n    Should the kernel be computed in chunks with checkpointing or not? (Default, no)\n\n    If `split_size = 0`:\n        The kernel is computed explicitly. During training, the kernel matrix is\n        kept in memory for the backward pass. This is the fastest option but the\n        most memory intensive.\n    If `split_size > 0`:\n        The kernel is never fully computed or stored. Instead, the kernel is only\n        accessed through matrix multiplication. The matrix multiplication is\n        computed in `segments` chunks. This is slower, but requires significantly less memory.\n\n    Default: 0\n    \"\"\"\n\n    _global_value = 0\n\n\nclass diagonal_correction(_feature_flag):\n    \"\"\"\n    Add a diagonal correction to scalable inducing point methods\n    \"\"\"\n\n    _state = True\n\n\nclass default_preconditioner(_feature_flag):\n    \"\"\"\n    Add a diagonal correction to scalable inducing point methods\n    \"\"\"\n\n    pass\n\n\n__all__ = [\"fast_pred_var\", \"fast_pred_samples\", \"diagonal_correction\", \"default_preconditioner\"]\n", "path": "gpytorch/beta_features.py"}], "after_files": [{"content": "#!/usr/bin/env python3\nfrom .module import Module\nfrom . import (\n    beta_features,\n    distributions,\n    kernels,\n    lazy,\n    likelihoods,\n    means,\n    mlls,\n    models,\n    priors,\n    settings,\n    utils,\n    variational,\n)\nfrom .functions import (\n    add_diag,\n    add_jitter,\n    dsmm,\n    inv_matmul,\n    inv_quad,\n    inv_quad_logdet,\n    logdet,\n    log_normal_cdf,\n    matmul,\n    normal_cdf,\n    root_decomposition,\n    root_inv_decomposition,\n    # Deprecated\n    inv_quad_log_det,\n    log_det,\n)\nfrom .mlls import ExactMarginalLogLikelihood, VariationalMarginalLogLikelihood\nfrom .lazy import lazify, delazify\n\n\n__version__ = \"0.2.1\"\n\n__all__ = [\n    # Submodules\n    \"distributions\",\n    \"kernels\",\n    \"lazy\",\n    \"likelihoods\",\n    \"means\",\n    \"mlls\",\n    \"models\",\n    \"priors\",\n    \"utils\",\n    \"variational\",\n    # Classes\n    \"Module\",\n    \"ExactMarginalLogLikelihood\",\n    \"VariationalMarginalLogLikelihood\",\n    # Functions\n    \"add_diag\",\n    \"add_jitter\",\n    \"delazify\",\n    \"dsmm\",\n    \"inv_matmul\",\n    \"inv_quad\",\n    \"inv_quad_logdet\",\n    \"lazify\",\n    \"logdet\",\n    \"log_normal_cdf\",\n    \"matmul\",\n    \"normal_cdf\",\n    \"root_decomposition\",\n    \"root_inv_decomposition\",\n    # Context managers\n    \"beta_features\",\n    \"settings\",\n    # Other\n    \"__version__\",\n    # Deprecated\n    \"inv_quad_log_det\",\n    \"log_det\",\n]\n", "path": "gpytorch/__init__.py"}, {"content": "#!/usr/bin/env python3\n\nimport warnings\nfrom .settings import _feature_flag, _value_context\n\n\nclass _moved_beta_feature(object):\n    def __init__(self, new_cls, orig_name=None):\n        self.new_cls = new_cls\n        self.orig_name = orig_name if orig_name is not None else \"gpytorch.settings.{}\".format(new_cls.__name__)\n\n    def __call__(self, *args, **kwargs):\n        warnings.warn(\n            \"`{}` has moved to `gpytorch.settings.{}`.\".format(self.orig_name, self.new_cls.__name__),\n            DeprecationWarning\n        )\n        return self.new_cls(*args, **kwargs)\n\n    def __getattr__(self, name):\n        return getattr(self.new_cls, name)\n\n\nclass checkpoint_kernel(_value_context):\n    \"\"\"\n    Should the kernel be computed in chunks with checkpointing or not? (Default, no)\n\n    If `split_size = 0`:\n        The kernel is computed explicitly. During training, the kernel matrix is\n        kept in memory for the backward pass. This is the fastest option but the\n        most memory intensive.\n    If `split_size > 0`:\n        The kernel is never fully computed or stored. Instead, the kernel is only\n        accessed through matrix multiplication. The matrix multiplication is\n        computed in `segments` chunks. This is slower, but requires significantly less memory.\n\n    Default: 0\n    \"\"\"\n\n    _global_value = 0\n\n\nclass diagonal_correction(_feature_flag):\n    \"\"\"\n    Add a diagonal correction to scalable inducing point methods\n    \"\"\"\n\n    _state = True\n\n\nclass default_preconditioner(_feature_flag):\n    \"\"\"\n    Add a diagonal correction to scalable inducing point methods\n    \"\"\"\n\n    pass\n\n\n__all__ = [\"checkpoint_kernel\", \"diagonal_correction\", \"default_preconditioner\"]\n", "path": "gpytorch/beta_features.py"}]}