BUG: dataframe.eval() throws error when using @function if numexpr package is installed
Full details and workaround are available in this [SO question](https://stackoverflow.com/questions/52233633/dataframe-eval-using-function-name-in-expression/52236235)

#### Code Sample, a copy-pastable example if possible

```python
import numpy as np
import pandas as pd
from numpy import around

df = pd.DataFrame({'x':np.array([1.12,2.76])})

# this throws TypeError: 'Series' objects are mutable, thus they cannot be hashed
df['y'] = df.eval('@around(x,1)')
```
#### Problem description
The evaluated expression should work because `around` is imported into the local namespace. There are two solutions:
-  remove `numexpr` from the environment.
-  set the engine for parsing the expression to be python:
```python
df['y'] = df.eval('@around(x,1)', engine = 'python')
```

#### Expected Output
```
          x    y
0  1.133320  1.1
1  2.733336  2.7
```

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

<details>
INSTALLED VERSIONS
------------------
commit: None
python: 3.7.0.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
byteorder: little
LC_ALL: None
LANG: en
LOCALE: None.None

pandas: 0.23.4
pytest: None
pip: 10.0.1
setuptools: 40.2.0
Cython: None
numpy: 1.15.1
scipy: 1.1.0
pyarrow: None
xarray: None
IPython: 6.5.0
sphinx: 1.7.8
patsy: None
dateutil: 2.7.3
pytz: 2018.5
blosc: None
bottleneck: None
tables: None
numexpr: 2.6.8
feather: None
matplotlib: None
openpyxl: None
xlrd: None
xlwt: None
xlsxwriter: None
lxml: None
bs4: None
html5lib: 1.0.1
sqlalchemy: None
pymysql: None
psycopg2: None
jinja2: 2.10
s3fs: None
fastparquet: None
pandas_gbq: None
pandas_datareader: None

</details>
