1.By geotargeting you are providing Google an indication that /fr is targeted for french audience but this alone is not enough and you may still see Google.fr showing your .eu in SERP result.
What extra needs to be done?
1. Get some local listings for your subdirectory
2. If you have the exact version of the .eu site on /fr you may use rel="alternate" hreflang="x"
This annotations help Google serve the correct language or regional URL to searchers.
3. You may also add this meta
4. Gain some backlinks from .fr sites for your /fr pages
5. Provide option to Internally navigate users to other languages through the language menu
6. Based on Geo I.P filter you may also display a lightbox saying something like : "Hey, we have a french version of our website, would you like to use it?