How to show a product from a field entry
This should work:

{% set image = block.chooseProduct.first().mainProductImage.first() %}


Explanation:
your field handle in your product is called recommendProduct (matrix) that contains a relation chooseProduct. Your block.chooseProduct is an object of type ElementCriteriaModel so in order to fetch the product you need to call the first() method (or something similar). So if you have multiple products in your chooseProduct field your code would look like this 

{% for block in product.recommendProduct %}
{% set i = i + 1 %}
   &lt;div&gt;
       {% for relatedProduct in block.chooseProduct %}
            {% set image = relatedProduct.mainProductImage.first() %}
            &lt;img src="{{ image.getUrl('productListing') }}"&gt;
            &lt;p&gt;{{ relatedProduct.title }}&lt;/p&gt;
       {% endfor %} 
   &lt;/div&gt;
{% endfor %}